Determining the effects of lake variables on the relationship of TP (log transformed ug/L) with Chl-a concentrations (log transformed ug/L), using the gradient of residuals against variables.

Linear model of logCHLA~logTP

Initial log-transformed linear model

Scatterplot

lm1 <- lm(logCHLA~logTP, data=df)
df$res.lm <- resid(lm1)
plot.lm1 <- ggplot(df,aes(x=logTP,y=logCHLA))+
  geom_point()+
  geom_smooth(method='lm')+
  labs(title="Linear log-log model",x="log TP",y="log CHLA")
print(plot.lm1)
## `geom_smooth()` using formula 'y ~ x'

Model statistics

summary(lm1)
## 
## Call:
## lm(formula = logCHLA ~ logTP, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.6584 -0.4638  0.0539  0.5754  4.5151 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  5.91854    0.06877   86.06   <2e-16 ***
## logTP        1.03301    0.01594   64.80   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.942 on 6467 degrees of freedom
## Multiple R-squared:  0.3937, Adjusted R-squared:  0.3936 
## F-statistic:  4199 on 1 and 6467 DF,  p-value: < 2.2e-16
anova(lm1)
## Analysis of Variance Table
## 
## Response: logCHLA
##             Df Sum Sq Mean Sq F value    Pr(>F)    
## logTP        1 3726.0  3726.0  4198.9 < 2.2e-16 ***
## Residuals 6467 5738.7     0.9                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual plots

Remove outliers and rerun model

Identify outliers

Outliers were identified as points with studentized residuals outside 3:-3

Scatterplot without outliers

plot.lm2<- ggplot(df2,aes(x=logTP,y=logCHLA))+
  geom_point()+
  geom_smooth(method='lm')+
  labs(title="Linear log-log model without outliers",x="log TP",y="log CHLA")
print(plot.lm2)
## `geom_smooth()` using formula 'y ~ x'

Model statistics

summary(lm2)
## 
## Call:
## lm(formula = logCHLA ~ logTP, data = df2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.98289 -0.46847  0.03455  0.53092  2.81817 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  6.30320    0.06207  101.55   <2e-16 ***
## logTP        1.11344    0.01439   77.38   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8251 on 6362 degrees of freedom
## Multiple R-squared:  0.4849, Adjusted R-squared:  0.4848 
## F-statistic:  5988 on 1 and 6362 DF,  p-value: < 2.2e-16
anova(lm2)
## Analysis of Variance Table
## 
## Response: logCHLA
##             Df Sum Sq Mean Sq F value    Pr(>F)    
## logTP        1 4076.5  4076.5  5988.1 < 2.2e-16 ***
## Residuals 6362 4331.0     0.7                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual plots

Variable effects on model residuals

Relationship of model residuals to lake characteristic variables

Residual plots

Pattern of logCHLA~logTP model residuals along gradients of variables. All variables are fitted to a linear model on the residuals.

cols <- c(2,9,10,11,15,16)

df2 <- df2 %>%
  rename("Sample date"=SAMPLE_DATE,
         "Secchi disk depth"=`DEPTH, SECCHI DISK DEPTH_SD_NA`,
         "Log(N:P)"=NPratio,
         "Lake temperature"=`TEMPERATURE, WATER_OW_NA`,
         "True color"=`TRUE COLOR_OW_T`)

for(i in cols){
  lm.loop <- lm(res.lm ~ df2[,i], data=df2) #linear model of residuals against variable
  p1 <- ggplot(df2,aes(x=df2[,i],y=res.lm))+
    geom_point()+
    geom_smooth(method='lm')+ 
    labs(x=paste(colnames(df2[i])),
         y='residuals of LM(logCHLA~logTP)')
  if(colnames(df2[i])=="Sample date"){
    p1 <- p1+scale_x_date(date_labels="%Y")
  }
  p2 <- ggplot(data=df2, aes(x=df2[,i])) +
    geom_density(fill="grey") +
    theme(axis.title.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank(),
        axis.title.y=element_blank(),
        axis.text.y=element_blank(),
        axis.ticks.y=element_blank(),
        panel.grid=element_blank(),
        axis.line=element_blank(),
        panel.background = element_blank())
  if(i==11){
    dat <- df2
    dat[,i]<-log(as.numeric(df2[,i]))
    dat <- dat %>%
      select(res.lm,"Log(N:P)") %>%
      na.omit(dat)
    dat <- dat[!is.infinite(dat$`Log(N:P)`),]
    lm.loop <- lm(res.lm ~ `Log(N:P)`,dat) 
    p1 <- ggplot(dat,aes(x=`Log(N:P)`,y=res.lm))+
      geom_point()+
      geom_smooth(method='lm')+ 
      labs(x=paste(colnames(df2[i])),
           y='residuals of LM(logCHLA~logTP)')
    p2 <- ggplot(data=dat, aes(x=`Log(N:P)`)) +
      geom_density(fill="grey") +
      theme(axis.title.x=element_blank(),
            axis.text.x=element_blank(),
            axis.ticks.x=element_blank(),
            axis.title.y=element_blank(),
            axis.text.y=element_blank(),
            axis.ticks.y=element_blank(),
            panel.grid=element_blank(),
            axis.line=element_blank(),
            panel.background = element_blank())
    }
  require(gridExtra)
  grid.arrange(p2, p1, ncol = 1, heights = c(1, 4))
  stats[nrow(stats)+1,] <- c(colnames(df2[i]),
                             coef(lm.loop),
                             summary(lm.loop)$coefficients[2,4],
                             summary(lm.loop)$r.squared)
  vars[nrow(vars)+1,] <- c(colnames(df2)[i],
                           paste(min(as.numeric(na.omit(df2[,i]))),
                                 "-",max(as.numeric(na.omit(df2[,i])))),
                           nrow(df2[i]),
                           paste(median(as.numeric(na.omit(df2[,i]))),
                           "(",summary(as.numeric(na.omit(df2[,i])))[2],
                           "-",summary(as.numeric(na.omit(df2[,i])))[5],")")) #stats
}

Model statistics

Variable descriptive statistics

characteristicrangenmedian..IQR.
Sample date6007 - 18535636412687 ( 8230.75 - 15877 )
Secchi disk depth0.05 - 13.663643.3 ( 2 - 4.75 )
NITROGEN, NITRATE-NITRITE_OW_T-0.000798 - 2.363640.01 ( 0.009922 - 0.034 )
Log(N:P)-0.0973170731707317 - 283.33333333333363641.01386281588448 ( 0.509259259259259 - 2.96805309734513 )
Lake temperature4 - 36636422.7777777777778 ( 20 - 25 )
True color0 - 222636410 ( 6 - 19 )
ACID DEPOSITION213.6579857 - 1671.7035522985808.8840129 ( 465.2497559 - 975.3500061 )
PRECIPITATION76.6439971923828 - 192.6909942626952515105.960250854492 ( 96.1419982910156 - 119.623184926382 )
COLOR (LOW)Inf - -Inf5018NA ( NA - NA )
COLOR (HIGH)Inf - -Inf1449NA ( NA - NA )

Coefficients for linear models of residuals along gradient of variables. Bold values indicate significant p-values (<0.05). Sorted by rsquared.

characteristicinterceptslopep.valuersquared
Secchi disk depth0.54363702693813-0.1537479552594714.7134371288255e-1740.120415808390344
ACID DEPOSITION-0.6314780727075920.0008309139299836911.54946185732119e-680.0975389912152332
Sample date0.781246097445401-6.34720589943145e-055.71931741311346e-1360.0922829965290701
Lake temperature0.356610213342912-0.01553392259322192.47318449824419e-070.00438824828642913
NITROGEN, NITRATE-NITRITE_OW_T0.000554353651244087-0.261928220989217.94789084060051e-050.00306853745689088
COLOR (LOW)-0.04069832157456420.006122698310578280.005683692908089910.00155562297822806
PRECIPITATION0.243824973482366-0.001106095747948050.2070235990578560.000633478591571892
Log(N:P)-0.0138670292849897-0.01327686406799410.09776935779004660.000541288958866251
COLOR (HIGH)-0.237494656467990.05457825106596420.398033537193850.000531499162041898
True color0.00554566259074965-0.000295774091631380.6725748766526992.85375728495901e-05

Most recent year

## Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...): NA/NaN/Inf in 'y'
## Error in `$<-.data.frame`(`*tmp*`, "DEPTH, BOTTOM_OW_NA", value = NA_real_): replacement has 1 row, data has 0
## Error in summary(lm.dep)$coefficients[2, 4]: subscript out of bounds

Recent year statistics

Variable descriptive statistics

characteristicyearsrangenmedian..IQR.
Secchi disk depth2018 - 20200.65 - 11.852753.9 ( 2.25 - 5.25 )
NITROGEN, NITRATE-NITRITE_OW_T2018 - 20200.0035 - 0.6772750.0209 ( 0.01 - 0.0713 )
LAKE DEPTH2020 - 202011 - 119
ACID DEPOSITION (DIN:TP>1.5)2011 - 2018213.6579857 - 772.118072582
ACID DEPOISITION (DIN:TP<1.5)2017 - 2018213.6579857 - 712.899106176
PRECIPITATION2013 - 201676.9628023420061 - 131.316277313232126
NITRATE+NITRITE (DIN:TP<1.5)2017 - 20200.0035 - 0.118140
NITRATE+NITRITE (DIN:TP>1.5)2011 - 20200.01 - 0.67772

Coefficients for linear models of residuals along gradient of variables in most recent year. Bold values indicate significant p-values (<0.05). Sorted by rsquared.

characteristicinterceptslopep.valuersquared
Secchi disk depth0.418879370452514-0.1347293285746922.07201547289412e-100.140652301284837
NITROGEN, NITRATE-NITRITE_OW_T-0.0137309001466414-1.253020577619750.03170859759938460.0525344583539137
NITRATE+NITRITE (DIN:TP>1.5)-0.179923076337358-0.9320266093612530.1231719887253820.0345933919602646
PRECIPITATION0.548127466881036-0.009397167047136270.2294789474270430.0120115407499817
ACID DEPOSITION (DIN:TP>1.5)-0.7679474439430080.0009891690494346240.3892694201931640.00976922152200085
ACID DEPOSITION (DIN:TP<1.5)-0.7679474439430080.0009891690494346240.3892694201931640.00976922152200085
NITRATE+NITRITE (DIN:TP<1.5)-0.07938904273444580.3885633313744090.9156967882243968.26930177312915e-05

Color bins

High vs low color, sample date [1] “HIGH COLOR, N= 0” [1] “LOW COLOR, N= 0”

## Error in eval(predvars, data, env): object 'SAMPLE_DATE' not found
## Error in FUN(X[[i]], ...): object 'SAMPLE_DATE' not found
## Error in coef(lm.high): object 'lm.high' not found
## Error in eval(predvars, data, env): object 'SAMPLE_DATE' not found
## Error in FUN(X[[i]], ...): object 'SAMPLE_DATE' not found
## Error in coef(lm.low): object 'lm.low' not found
characteristicinterceptslopep.valuersquared

Color trend, sample date

## Error: Can't subset columns that don't exist.
## x Column `TRUE COLOR_OW_T` doesn't exist.
## Error: Can't subset columns that don't exist.
## x Column `TRUE COLOR_OW_T` doesn't exist.

[1] “INCREASING COLOR, N= 22” [1] “DECREASING COLOR, N= 17”

## Error in eval(predvars, data, env): object 'res.lm' not found
## Error in ggplot(lm.inc, aes(x = SAMPLE_DATE, y = res.lm)): object 'lm.inc' not found
## Error in ggplot(data = lm.inc, aes(x = SAMPLE_DATE)): object 'lm.inc' not found
## Error in FUN(X[[i]], ...): object 'SAMPLE_DATE' not found
## Error in coef(lm.inc): object 'lm.inc' not found
## Error in eval(predvars, data, env): object 'res.lm' not found
## Error in FUN(X[[i]], ...): object 'SAMPLE_DATE' not found
## Error in coef(lm.dec): object 'lm.dec' not found
characteristicinterceptslopep.valuersquared

Relationship of model residuals to year by lake

Pattern of logCHLA~logTP model residuals along sample date for each lake. Data from each lake are fitted to a linear model on the residuals.

Residual plots

A red regression line indicates the model is statistically insignificant (p>0.05). A red border medians that the lake had a negative chlorophyll trend and a flat or positive phosphorous trend.

#each lake
#loop over each lake
LAKE_IDS <- unique(df$LAKE_ID) #list lakes
coeffs <- data.frame(lake=character(),
                     intercept=double(),
                     slope=double(),
                     'p-value'=double(),
                     rsquared=double()) #blank coefficient table

incongruous <- read.csv("~/OneDrive - New York State Office of Information Technology Services/Rscripts/Trend/chl-tp-lakes.csv")
incongruous <- incongruous[which(incongruous$CHL_slope!=incongruous$PHOS_slope),]
incongruous <- incongruous[incongruous$CHL_slope=="neg",]

for (i in 1:length(LAKE_IDS)) {
  lake <- LAKE_IDS[[i]] #pick a lake
  dat <- df2[df2$LAKE_ID == lake,] #create new data with that lake
  resid.loop <- lm(logCHLA~logTP,data=dat) #linear model of chl vs tp
  dat$res.loop <- resid(resid.loop) #residuals for that lake
  lm.loop <- lm(res.loop~SAMPLE_DATE,data=dat) #linear model of residuals vs year
  co <- coef(lm.loop)
  plot <- ggplot(dat,aes(x=SAMPLE_DATE,y=res.loop))+ #plot lake
    geom_point() +
    labs(title=paste(lake),x='year',y='residuals of LM(logCHLA~logTP)')
  if(summary(lm.loop)$coefficients[,4]<0.05){ #plot significant lakes
    plot <- plot + geom_smooth(method='lm')
  }else{
    plot <- plot + geom_smooth(method='lm',aes(color="red"),show.legend=FALSE)
  }
  if(lake %in% incongruous$LAKE_ID){
    plot <- plot + theme(panel.border = element_rect(colour = "red", fill=NA, size=3))
  }else{}
  print(plot) #print
  coeffs[nrow(coeffs)+1,] <- c(lake,
                               co,
                               summary(lm.loop)$coefficients[2,4],
                               summary(lm.loop)$r.squared)
}
## Error in eval(predvars, data, env): object 'SAMPLE_DATE' not found

Model statistics

Coefficients for linear models of residuals along gradient of time for each lake. Bold values indicate significant p-values (<0.05). Asterisks (***) indicate that the lake had a negative chlorophyll trend and a flat or positive phosphorous trend.

lakeinterceptslopep.valuersquared

Distribution of slopes

Dot plot of slope for each lake. Grey dots are statistically insignificant (p>0.05).

## Error in `$<-.data.frame`(`*tmp*`, x, value = "lakes"): replacement has 1 row, data has 0
## Error in `$<-.data.frame`(`*tmp*`, sig, value = "sig"): replacement has 1 row, data has 0
## Error in if (coeffs$p.value[i] < 0.05) {: missing value where TRUE/FALSE needed
## Error in FUN(X[[i]], ...): object 'x' not found

# Maps

temp1 <- read.csv("junk.sabrina.slopes2.csv") 

temp1 <- temp1 %>% 
  select(-c("ChlA","P","risiduals"))
coeffs2 <- coeffs %>%
  rename(LAKE_ID=lake) %>%
  rename(CHLTP=slope) %>%
  select(LAKE_ID,CHLTP,p.value)
coeffs2$CHLTP <- as.numeric(coeffs2$CHLTP)
coeffs2$p.value <- as.numeric(coeffs2$p.value)

coeffs2$CHLTP[coeffs2$p.value>0.05]<-0

slopes <- merge(temp1,coeffs2,by="LAKE_ID",all.x=TRUE,all.y=TRUE)

locs <- read.csv("/Users/sabrinaxie/New York State Office of Information Technology Services/BWAM - Lakes Database/Current/new_database/L_LOCATION.csv")

locs <- locs %>%
  filter(LOCATION_TYPE=="CENTROID") %>%
  select(LAKE_HISTORY_ID,LOCATION_X_COORDINATE,LOCATION_Y_COORDINATE) %>%
  rename(LAKE_ID=LAKE_HISTORY_ID)

sites<-merge(slopes,locs,by=c('LAKE_ID'),all.x = TRUE) %>%
  distinct()

library(ggmap)
## Google's Terms of Service: https://cloud.google.com/maps-platform/terms/.
## Please cite ggmap if you use it! See citation("ggmap") for details.
ggplot(grid, aes(lon, lat)) +
  geom_raster(aes(fill = cut(z, zCuts))) 
## Error:   You're passing a function as global data.
##   Have you misspelled the `data` argument in `ggplot()`
#color
nybox<-make_bbox(sites,lon=LOCATION_X_COORDINATE,lat=LOCATION_Y_COORDINATE)
ny.map <- qmap(nybox,source="osm",color="bw")
## 384 tiles needed, this may take a while (try a smaller zoom).
## Source : http://tile.stamen.com/terrain/10/284/369.png
## Source : http://tile.stamen.com/terrain/10/285/369.png
## Source : http://tile.stamen.com/terrain/10/286/369.png
## Source : http://tile.stamen.com/terrain/10/287/369.png
## Source : http://tile.stamen.com/terrain/10/288/369.png
## Source : http://tile.stamen.com/terrain/10/289/369.png
## Source : http://tile.stamen.com/terrain/10/290/369.png
## Source : http://tile.stamen.com/terrain/10/291/369.png
## Source : http://tile.stamen.com/terrain/10/292/369.png
## Source : http://tile.stamen.com/terrain/10/293/369.png
## Source : http://tile.stamen.com/terrain/10/294/369.png
## Source : http://tile.stamen.com/terrain/10/295/369.png
## Source : http://tile.stamen.com/terrain/10/296/369.png
## Source : http://tile.stamen.com/terrain/10/297/369.png
## Source : http://tile.stamen.com/terrain/10/298/369.png
## Source : http://tile.stamen.com/terrain/10/299/369.png
## Source : http://tile.stamen.com/terrain/10/300/369.png
## Source : http://tile.stamen.com/terrain/10/301/369.png
## Source : http://tile.stamen.com/terrain/10/302/369.png
## Source : http://tile.stamen.com/terrain/10/303/369.png
## Source : http://tile.stamen.com/terrain/10/304/369.png
## Source : http://tile.stamen.com/terrain/10/305/369.png
## Source : http://tile.stamen.com/terrain/10/306/369.png
## Source : http://tile.stamen.com/terrain/10/307/369.png
## Source : http://tile.stamen.com/terrain/10/284/370.png
## Source : http://tile.stamen.com/terrain/10/285/370.png
## Source : http://tile.stamen.com/terrain/10/286/370.png
## Source : http://tile.stamen.com/terrain/10/287/370.png
## Source : http://tile.stamen.com/terrain/10/288/370.png
## Source : http://tile.stamen.com/terrain/10/289/370.png
## Source : http://tile.stamen.com/terrain/10/290/370.png
## Source : http://tile.stamen.com/terrain/10/291/370.png
## Source : http://tile.stamen.com/terrain/10/292/370.png
## Source : http://tile.stamen.com/terrain/10/293/370.png
## Source : http://tile.stamen.com/terrain/10/294/370.png
## Source : http://tile.stamen.com/terrain/10/295/370.png
## Source : http://tile.stamen.com/terrain/10/296/370.png
## Source : http://tile.stamen.com/terrain/10/297/370.png
## Source : http://tile.stamen.com/terrain/10/298/370.png
## Source : http://tile.stamen.com/terrain/10/299/370.png
## Source : http://tile.stamen.com/terrain/10/300/370.png
## Source : http://tile.stamen.com/terrain/10/301/370.png
## Source : http://tile.stamen.com/terrain/10/302/370.png
## Source : http://tile.stamen.com/terrain/10/303/370.png
## Source : http://tile.stamen.com/terrain/10/304/370.png
## Source : http://tile.stamen.com/terrain/10/305/370.png
## Source : http://tile.stamen.com/terrain/10/306/370.png
## Source : http://tile.stamen.com/terrain/10/307/370.png
## Source : http://tile.stamen.com/terrain/10/284/371.png
## Source : http://tile.stamen.com/terrain/10/285/371.png
## Source : http://tile.stamen.com/terrain/10/286/371.png
## Source : http://tile.stamen.com/terrain/10/287/371.png
## Source : http://tile.stamen.com/terrain/10/288/371.png
## Source : http://tile.stamen.com/terrain/10/289/371.png
## Source : http://tile.stamen.com/terrain/10/290/371.png
## Source : http://tile.stamen.com/terrain/10/291/371.png
## Source : http://tile.stamen.com/terrain/10/292/371.png
## Source : http://tile.stamen.com/terrain/10/293/371.png
## Source : http://tile.stamen.com/terrain/10/294/371.png
## Source : http://tile.stamen.com/terrain/10/295/371.png
## Source : http://tile.stamen.com/terrain/10/296/371.png
## Source : http://tile.stamen.com/terrain/10/297/371.png
## Source : http://tile.stamen.com/terrain/10/298/371.png
## Source : http://tile.stamen.com/terrain/10/299/371.png
## Source : http://tile.stamen.com/terrain/10/300/371.png
## Source : http://tile.stamen.com/terrain/10/301/371.png
## Source : http://tile.stamen.com/terrain/10/302/371.png
## Source : http://tile.stamen.com/terrain/10/303/371.png
## Source : http://tile.stamen.com/terrain/10/304/371.png
## Source : http://tile.stamen.com/terrain/10/305/371.png
## Source : http://tile.stamen.com/terrain/10/306/371.png
## Source : http://tile.stamen.com/terrain/10/307/371.png
## Source : http://tile.stamen.com/terrain/10/284/372.png
## Source : http://tile.stamen.com/terrain/10/285/372.png
## Source : http://tile.stamen.com/terrain/10/286/372.png
## Source : http://tile.stamen.com/terrain/10/287/372.png
## Source : http://tile.stamen.com/terrain/10/288/372.png
## Source : http://tile.stamen.com/terrain/10/289/372.png
## Source : http://tile.stamen.com/terrain/10/290/372.png
## Source : http://tile.stamen.com/terrain/10/291/372.png
## Source : http://tile.stamen.com/terrain/10/292/372.png
## Source : http://tile.stamen.com/terrain/10/293/372.png
## Source : http://tile.stamen.com/terrain/10/294/372.png
## Source : http://tile.stamen.com/terrain/10/295/372.png
## Source : http://tile.stamen.com/terrain/10/296/372.png
## Source : http://tile.stamen.com/terrain/10/297/372.png
## Source : http://tile.stamen.com/terrain/10/298/372.png
## Source : http://tile.stamen.com/terrain/10/299/372.png
## Source : http://tile.stamen.com/terrain/10/300/372.png
## Source : http://tile.stamen.com/terrain/10/301/372.png
## Source : http://tile.stamen.com/terrain/10/302/372.png
## Source : http://tile.stamen.com/terrain/10/303/372.png
## Source : http://tile.stamen.com/terrain/10/304/372.png
## Source : http://tile.stamen.com/terrain/10/305/372.png
## Source : http://tile.stamen.com/terrain/10/306/372.png
## Source : http://tile.stamen.com/terrain/10/307/372.png
## Source : http://tile.stamen.com/terrain/10/284/373.png
## Source : http://tile.stamen.com/terrain/10/285/373.png
## Source : http://tile.stamen.com/terrain/10/286/373.png
## Source : http://tile.stamen.com/terrain/10/287/373.png
## Source : http://tile.stamen.com/terrain/10/288/373.png
## Source : http://tile.stamen.com/terrain/10/289/373.png
## Source : http://tile.stamen.com/terrain/10/290/373.png
## Source : http://tile.stamen.com/terrain/10/291/373.png
## Source : http://tile.stamen.com/terrain/10/292/373.png
## Source : http://tile.stamen.com/terrain/10/293/373.png
## Source : http://tile.stamen.com/terrain/10/294/373.png
## Source : http://tile.stamen.com/terrain/10/295/373.png
## Source : http://tile.stamen.com/terrain/10/296/373.png
## Source : http://tile.stamen.com/terrain/10/297/373.png
## Source : http://tile.stamen.com/terrain/10/298/373.png
## Source : http://tile.stamen.com/terrain/10/299/373.png
## Source : http://tile.stamen.com/terrain/10/300/373.png
## Source : http://tile.stamen.com/terrain/10/301/373.png
## Source : http://tile.stamen.com/terrain/10/302/373.png
## Source : http://tile.stamen.com/terrain/10/303/373.png
## Source : http://tile.stamen.com/terrain/10/304/373.png
## Source : http://tile.stamen.com/terrain/10/305/373.png
## Source : http://tile.stamen.com/terrain/10/306/373.png
## Source : http://tile.stamen.com/terrain/10/307/373.png
## Source : http://tile.stamen.com/terrain/10/284/374.png
## Source : http://tile.stamen.com/terrain/10/285/374.png
## Source : http://tile.stamen.com/terrain/10/286/374.png
## Source : http://tile.stamen.com/terrain/10/287/374.png
## Source : http://tile.stamen.com/terrain/10/288/374.png
## Source : http://tile.stamen.com/terrain/10/289/374.png
## Source : http://tile.stamen.com/terrain/10/290/374.png
## Source : http://tile.stamen.com/terrain/10/291/374.png
## Source : http://tile.stamen.com/terrain/10/292/374.png
## Source : http://tile.stamen.com/terrain/10/293/374.png
## Source : http://tile.stamen.com/terrain/10/294/374.png
## Source : http://tile.stamen.com/terrain/10/295/374.png
## Source : http://tile.stamen.com/terrain/10/296/374.png
## Source : http://tile.stamen.com/terrain/10/297/374.png
## Source : http://tile.stamen.com/terrain/10/298/374.png
## Source : http://tile.stamen.com/terrain/10/299/374.png
## Source : http://tile.stamen.com/terrain/10/300/374.png
## Source : http://tile.stamen.com/terrain/10/301/374.png
## Source : http://tile.stamen.com/terrain/10/302/374.png
## Source : http://tile.stamen.com/terrain/10/303/374.png
## Source : http://tile.stamen.com/terrain/10/304/374.png
## Source : http://tile.stamen.com/terrain/10/305/374.png
## Source : http://tile.stamen.com/terrain/10/306/374.png
## Source : http://tile.stamen.com/terrain/10/307/374.png
## Source : http://tile.stamen.com/terrain/10/284/375.png
## Source : http://tile.stamen.com/terrain/10/285/375.png
## Source : http://tile.stamen.com/terrain/10/286/375.png
## Source : http://tile.stamen.com/terrain/10/287/375.png
## Source : http://tile.stamen.com/terrain/10/288/375.png
## Source : http://tile.stamen.com/terrain/10/289/375.png
## Source : http://tile.stamen.com/terrain/10/290/375.png
## Source : http://tile.stamen.com/terrain/10/291/375.png
## Source : http://tile.stamen.com/terrain/10/292/375.png
## Source : http://tile.stamen.com/terrain/10/293/375.png
## Source : http://tile.stamen.com/terrain/10/294/375.png
## Source : http://tile.stamen.com/terrain/10/295/375.png
## Source : http://tile.stamen.com/terrain/10/296/375.png
## Source : http://tile.stamen.com/terrain/10/297/375.png
## Source : http://tile.stamen.com/terrain/10/298/375.png
## Source : http://tile.stamen.com/terrain/10/299/375.png
## Source : http://tile.stamen.com/terrain/10/300/375.png
## Source : http://tile.stamen.com/terrain/10/301/375.png
## Source : http://tile.stamen.com/terrain/10/302/375.png
## Source : http://tile.stamen.com/terrain/10/303/375.png
## Source : http://tile.stamen.com/terrain/10/304/375.png
## Source : http://tile.stamen.com/terrain/10/305/375.png
## Source : http://tile.stamen.com/terrain/10/306/375.png
## Source : http://tile.stamen.com/terrain/10/307/375.png
## Source : http://tile.stamen.com/terrain/10/284/376.png
## Source : http://tile.stamen.com/terrain/10/285/376.png
## Source : http://tile.stamen.com/terrain/10/286/376.png
## Source : http://tile.stamen.com/terrain/10/287/376.png
## Source : http://tile.stamen.com/terrain/10/288/376.png
## Source : http://tile.stamen.com/terrain/10/289/376.png
## Source : http://tile.stamen.com/terrain/10/290/376.png
## Source : http://tile.stamen.com/terrain/10/291/376.png
## Source : http://tile.stamen.com/terrain/10/292/376.png
## Source : http://tile.stamen.com/terrain/10/293/376.png
## Source : http://tile.stamen.com/terrain/10/294/376.png
## Source : http://tile.stamen.com/terrain/10/295/376.png
## Source : http://tile.stamen.com/terrain/10/296/376.png
## Source : http://tile.stamen.com/terrain/10/297/376.png
## Source : http://tile.stamen.com/terrain/10/298/376.png
## Source : http://tile.stamen.com/terrain/10/299/376.png
## Source : http://tile.stamen.com/terrain/10/300/376.png
## Source : http://tile.stamen.com/terrain/10/301/376.png
## Source : http://tile.stamen.com/terrain/10/302/376.png
## Source : http://tile.stamen.com/terrain/10/303/376.png
## Source : http://tile.stamen.com/terrain/10/304/376.png
## Source : http://tile.stamen.com/terrain/10/305/376.png
## Source : http://tile.stamen.com/terrain/10/306/376.png
## Source : http://tile.stamen.com/terrain/10/307/376.png
## Source : http://tile.stamen.com/terrain/10/284/377.png
## Source : http://tile.stamen.com/terrain/10/285/377.png
## Source : http://tile.stamen.com/terrain/10/286/377.png
## Source : http://tile.stamen.com/terrain/10/287/377.png
## Source : http://tile.stamen.com/terrain/10/288/377.png
## Source : http://tile.stamen.com/terrain/10/289/377.png
## Source : http://tile.stamen.com/terrain/10/290/377.png
## Source : http://tile.stamen.com/terrain/10/291/377.png
## Source : http://tile.stamen.com/terrain/10/292/377.png
## Source : http://tile.stamen.com/terrain/10/293/377.png
## Source : http://tile.stamen.com/terrain/10/294/377.png
## Source : http://tile.stamen.com/terrain/10/295/377.png
## Source : http://tile.stamen.com/terrain/10/296/377.png
## Source : http://tile.stamen.com/terrain/10/297/377.png
## Source : http://tile.stamen.com/terrain/10/298/377.png
## Source : http://tile.stamen.com/terrain/10/299/377.png
## Source : http://tile.stamen.com/terrain/10/300/377.png
## Source : http://tile.stamen.com/terrain/10/301/377.png
## Source : http://tile.stamen.com/terrain/10/302/377.png
## Source : http://tile.stamen.com/terrain/10/303/377.png
## Source : http://tile.stamen.com/terrain/10/304/377.png
## Source : http://tile.stamen.com/terrain/10/305/377.png
## Source : http://tile.stamen.com/terrain/10/306/377.png
## Source : http://tile.stamen.com/terrain/10/307/377.png
## Source : http://tile.stamen.com/terrain/10/284/378.png
## Source : http://tile.stamen.com/terrain/10/285/378.png
## Source : http://tile.stamen.com/terrain/10/286/378.png
## Source : http://tile.stamen.com/terrain/10/287/378.png
## Source : http://tile.stamen.com/terrain/10/288/378.png
## Source : http://tile.stamen.com/terrain/10/289/378.png
## Source : http://tile.stamen.com/terrain/10/290/378.png
## Source : http://tile.stamen.com/terrain/10/291/378.png
## Source : http://tile.stamen.com/terrain/10/292/378.png
## Source : http://tile.stamen.com/terrain/10/293/378.png
## Source : http://tile.stamen.com/terrain/10/294/378.png
## Source : http://tile.stamen.com/terrain/10/295/378.png
## Source : http://tile.stamen.com/terrain/10/296/378.png
## Source : http://tile.stamen.com/terrain/10/297/378.png
## Source : http://tile.stamen.com/terrain/10/298/378.png
## Source : http://tile.stamen.com/terrain/10/299/378.png
## Source : http://tile.stamen.com/terrain/10/300/378.png
## Source : http://tile.stamen.com/terrain/10/301/378.png
## Source : http://tile.stamen.com/terrain/10/302/378.png
## Source : http://tile.stamen.com/terrain/10/303/378.png
## Source : http://tile.stamen.com/terrain/10/304/378.png
## Source : http://tile.stamen.com/terrain/10/305/378.png
## Source : http://tile.stamen.com/terrain/10/306/378.png
## Source : http://tile.stamen.com/terrain/10/307/378.png
## Source : http://tile.stamen.com/terrain/10/284/379.png
## Source : http://tile.stamen.com/terrain/10/285/379.png
## Source : http://tile.stamen.com/terrain/10/286/379.png
## Source : http://tile.stamen.com/terrain/10/287/379.png
## Source : http://tile.stamen.com/terrain/10/288/379.png
## Source : http://tile.stamen.com/terrain/10/289/379.png
## Source : http://tile.stamen.com/terrain/10/290/379.png
## Source : http://tile.stamen.com/terrain/10/291/379.png
## Source : http://tile.stamen.com/terrain/10/292/379.png
## Source : http://tile.stamen.com/terrain/10/293/379.png
## Source : http://tile.stamen.com/terrain/10/294/379.png
## Source : http://tile.stamen.com/terrain/10/295/379.png
## Source : http://tile.stamen.com/terrain/10/296/379.png
## Source : http://tile.stamen.com/terrain/10/297/379.png
## Source : http://tile.stamen.com/terrain/10/298/379.png
## Source : http://tile.stamen.com/terrain/10/299/379.png
## Source : http://tile.stamen.com/terrain/10/300/379.png
## Source : http://tile.stamen.com/terrain/10/301/379.png
## Source : http://tile.stamen.com/terrain/10/302/379.png
## Source : http://tile.stamen.com/terrain/10/303/379.png
## Source : http://tile.stamen.com/terrain/10/304/379.png
## Source : http://tile.stamen.com/terrain/10/305/379.png
## Source : http://tile.stamen.com/terrain/10/306/379.png
## Source : http://tile.stamen.com/terrain/10/307/379.png
## Source : http://tile.stamen.com/terrain/10/284/380.png
## Source : http://tile.stamen.com/terrain/10/285/380.png
## Source : http://tile.stamen.com/terrain/10/286/380.png
## Source : http://tile.stamen.com/terrain/10/287/380.png
## Source : http://tile.stamen.com/terrain/10/288/380.png
## Source : http://tile.stamen.com/terrain/10/289/380.png
## Source : http://tile.stamen.com/terrain/10/290/380.png
## Source : http://tile.stamen.com/terrain/10/291/380.png
## Source : http://tile.stamen.com/terrain/10/292/380.png
## Source : http://tile.stamen.com/terrain/10/293/380.png
## Source : http://tile.stamen.com/terrain/10/294/380.png
## Source : http://tile.stamen.com/terrain/10/295/380.png
## Source : http://tile.stamen.com/terrain/10/296/380.png
## Source : http://tile.stamen.com/terrain/10/297/380.png
## Source : http://tile.stamen.com/terrain/10/298/380.png
## Source : http://tile.stamen.com/terrain/10/299/380.png
## Source : http://tile.stamen.com/terrain/10/300/380.png
## Source : http://tile.stamen.com/terrain/10/301/380.png
## Source : http://tile.stamen.com/terrain/10/302/380.png
## Source : http://tile.stamen.com/terrain/10/303/380.png
## Source : http://tile.stamen.com/terrain/10/304/380.png
## Source : http://tile.stamen.com/terrain/10/305/380.png
## Source : http://tile.stamen.com/terrain/10/306/380.png
## Source : http://tile.stamen.com/terrain/10/307/380.png
## Source : http://tile.stamen.com/terrain/10/284/381.png
## Source : http://tile.stamen.com/terrain/10/285/381.png
## Source : http://tile.stamen.com/terrain/10/286/381.png
## Source : http://tile.stamen.com/terrain/10/287/381.png
## Source : http://tile.stamen.com/terrain/10/288/381.png
## Source : http://tile.stamen.com/terrain/10/289/381.png
## Source : http://tile.stamen.com/terrain/10/290/381.png
## Source : http://tile.stamen.com/terrain/10/291/381.png
## Source : http://tile.stamen.com/terrain/10/292/381.png
## Source : http://tile.stamen.com/terrain/10/293/381.png
## Source : http://tile.stamen.com/terrain/10/294/381.png
## Source : http://tile.stamen.com/terrain/10/295/381.png
## Source : http://tile.stamen.com/terrain/10/296/381.png
## Source : http://tile.stamen.com/terrain/10/297/381.png
## Source : http://tile.stamen.com/terrain/10/298/381.png
## Source : http://tile.stamen.com/terrain/10/299/381.png
## Source : http://tile.stamen.com/terrain/10/300/381.png
## Source : http://tile.stamen.com/terrain/10/301/381.png
## Source : http://tile.stamen.com/terrain/10/302/381.png
## Source : http://tile.stamen.com/terrain/10/303/381.png
## Source : http://tile.stamen.com/terrain/10/304/381.png
## Source : http://tile.stamen.com/terrain/10/305/381.png
## Source : http://tile.stamen.com/terrain/10/306/381.png
## Source : http://tile.stamen.com/terrain/10/307/381.png
## Source : http://tile.stamen.com/terrain/10/284/382.png
## Source : http://tile.stamen.com/terrain/10/285/382.png
## Source : http://tile.stamen.com/terrain/10/286/382.png
## Source : http://tile.stamen.com/terrain/10/287/382.png
## Source : http://tile.stamen.com/terrain/10/288/382.png
## Source : http://tile.stamen.com/terrain/10/289/382.png
## Source : http://tile.stamen.com/terrain/10/290/382.png
## Source : http://tile.stamen.com/terrain/10/291/382.png
## Source : http://tile.stamen.com/terrain/10/292/382.png
## Source : http://tile.stamen.com/terrain/10/293/382.png
## Source : http://tile.stamen.com/terrain/10/294/382.png
## Source : http://tile.stamen.com/terrain/10/295/382.png
## Source : http://tile.stamen.com/terrain/10/296/382.png
## Source : http://tile.stamen.com/terrain/10/297/382.png
## Source : http://tile.stamen.com/terrain/10/298/382.png
## Source : http://tile.stamen.com/terrain/10/299/382.png
## Source : http://tile.stamen.com/terrain/10/300/382.png
## Source : http://tile.stamen.com/terrain/10/301/382.png
## Source : http://tile.stamen.com/terrain/10/302/382.png
## Source : http://tile.stamen.com/terrain/10/303/382.png
## Source : http://tile.stamen.com/terrain/10/304/382.png
## Source : http://tile.stamen.com/terrain/10/305/382.png
## Source : http://tile.stamen.com/terrain/10/306/382.png
## Source : http://tile.stamen.com/terrain/10/307/382.png
## Source : http://tile.stamen.com/terrain/10/284/383.png
## Source : http://tile.stamen.com/terrain/10/285/383.png
## Source : http://tile.stamen.com/terrain/10/286/383.png
## Source : http://tile.stamen.com/terrain/10/287/383.png
## Source : http://tile.stamen.com/terrain/10/288/383.png
## Source : http://tile.stamen.com/terrain/10/289/383.png
## Source : http://tile.stamen.com/terrain/10/290/383.png
## Source : http://tile.stamen.com/terrain/10/291/383.png
## Source : http://tile.stamen.com/terrain/10/292/383.png
## Source : http://tile.stamen.com/terrain/10/293/383.png
## Source : http://tile.stamen.com/terrain/10/294/383.png
## Source : http://tile.stamen.com/terrain/10/295/383.png
## Source : http://tile.stamen.com/terrain/10/296/383.png
## Source : http://tile.stamen.com/terrain/10/297/383.png
## Source : http://tile.stamen.com/terrain/10/298/383.png
## Source : http://tile.stamen.com/terrain/10/299/383.png
## Source : http://tile.stamen.com/terrain/10/300/383.png
## Source : http://tile.stamen.com/terrain/10/301/383.png
## Source : http://tile.stamen.com/terrain/10/302/383.png
## Source : http://tile.stamen.com/terrain/10/303/383.png
## Source : http://tile.stamen.com/terrain/10/304/383.png
## Source : http://tile.stamen.com/terrain/10/305/383.png
## Source : http://tile.stamen.com/terrain/10/306/383.png
## Source : http://tile.stamen.com/terrain/10/307/383.png
## Source : http://tile.stamen.com/terrain/10/284/384.png
## Source : http://tile.stamen.com/terrain/10/285/384.png
## Source : http://tile.stamen.com/terrain/10/286/384.png
## Source : http://tile.stamen.com/terrain/10/287/384.png
## Source : http://tile.stamen.com/terrain/10/288/384.png
## Source : http://tile.stamen.com/terrain/10/289/384.png
## Source : http://tile.stamen.com/terrain/10/290/384.png
## Source : http://tile.stamen.com/terrain/10/291/384.png
## Source : http://tile.stamen.com/terrain/10/292/384.png
## Source : http://tile.stamen.com/terrain/10/293/384.png
## Source : http://tile.stamen.com/terrain/10/294/384.png
## Source : http://tile.stamen.com/terrain/10/295/384.png
## Source : http://tile.stamen.com/terrain/10/296/384.png
## Source : http://tile.stamen.com/terrain/10/297/384.png
## Source : http://tile.stamen.com/terrain/10/298/384.png
## Source : http://tile.stamen.com/terrain/10/299/384.png
## Source : http://tile.stamen.com/terrain/10/300/384.png
## Source : http://tile.stamen.com/terrain/10/301/384.png
## Source : http://tile.stamen.com/terrain/10/302/384.png
## Source : http://tile.stamen.com/terrain/10/303/384.png
## Source : http://tile.stamen.com/terrain/10/304/384.png
## Source : http://tile.stamen.com/terrain/10/305/384.png
## Source : http://tile.stamen.com/terrain/10/306/384.png
## Source : http://tile.stamen.com/terrain/10/307/384.png
ny.map1<- ny.map +
  geom_point(data=sites,size=4,
             aes(x=LOCATION_X_COORDINATE,
                 y=LOCATION_Y_COORDINATE,
                 color=Color)) +
  scale_color_distiller(palette = "RdBu", limits = c(-0.4,0.4))
print(ny.map1)

#temperature
ny.map2 <- ny.map +
  geom_point(data=sites,size=4,
             aes(x=LOCATION_X_COORDINATE,
                 y=LOCATION_Y_COORDINATE,
                 color=Temp)) +
  scale_color_distiller(palette = "RdBu", limits = c(-0.2,0.2))
print(ny.map2)

#CHL/TP
ny.map3 <- ny.map +
  geom_point(data=sites, size=4,
             aes(x=LOCATION_X_COORDINATE,
                 y=LOCATION_Y_COORDINATE,
                 color=CHLTP)) +
  scale_color_distiller(palette = "RdBu", limits = c(-0.000125,0.000125))
print(ny.map3)